void
gtk_atspi_disconnect_text_signals (GtkAccessible *accessible)
{
+ if (!GTK_IS_EDITABLE (accessible) &&
+ !GTK_IS_TEXT_VIEW (accessible))
+ return;
+
TextChanged *changed;
changed = g_object_get_data (G_OBJECT (accessible), "accessible-text-data");
+ if (changed == NULL)
+ return;
if (GTK_IS_EDITABLE (accessible))
{
else if (GTK_IS_TEXT_VIEW (accessible))
{
g_signal_handlers_disconnect_by_func (accessible, buffer_changed, changed);
+
if (changed->buffer)
{
g_signal_handlers_disconnect_by_func (changed->buffer, insert_range_cb, changed);
g_signal_handlers_disconnect_by_func (changed->buffer, delete_range_after_cb, changed);
g_signal_handlers_disconnect_by_func (changed->buffer, mark_set_cb, changed);
}
+
g_clear_object (&changed->buffer);
}